/*******************************************
 *                                         *
 *******************************************/

#ifndef GAME_H
#define GAME_H

//Needed Libraries
#include "..\Graphics\GraphicsDevice.h"
#include "..\Input\Input.h"

//Using DirectX Framework
using DirectXFramework::Graphics::GraphicsDevice;
using DirectXFramework::Graphics::LPGRAPHICSDEVICE;
using DirectXFramework::Input::GameKeyboard;
using DirectXFramework::Input::LPGAMEKEYBOARD;
using DirectXFramework::Input::GameMouse;
using DirectXFramework::Input::LPGAMEMOUSE;

namespace DirectXFramework
{
	//Game Class Declaration
	class Game
	{
		public:
			//Constructors
			Game (void);
			Game (HINSTANCE Instance, LPCWSTR WindowTitle, UINT Width, UINT Height, BOOL FullScreen);
			//Destructor
			~Game (void);

			//Public Methods
			BOOL Init (HINSTANCE Instance, LPCWSTR WindowTitle, UINT Width, UINT Height, BOOL FullScreen);
			virtual BOOL Update (void);

		protected:
			//Private Members
			LPWINDOW GameWindow;
			LPGRAPHICSDEVICE Renderer;
			LPGAMEKEYBOARD Keyboard;
			LPGAMEMOUSE Mouse;
			BOOL IsRunning;
	};
};

#endif